package com.bp.village.project.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.bp.common.annotation.Excels;
import com.bp.common.core.domain.AjaxResult;
import com.bp.system.domain.SysRegion;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.bp.common.annotation.Excel;
import com.bp.common.core.domain.BaseEntity;

/**
 * 村级工程管理对象 biz_village_project
 * 
 * @author shaominjie
 * @date 2021-01-26
 */
public class BizVillageProject extends BaseEntity{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long projectId;

    /** 所属区域ID */
//    @Excel(name = "所属区域ID")
    private Long regionId;
    @Excels({
            @Excel(name = "行政区划",targetAttr = "regionName",cellType = Excel.ColumnType.STRING,prompt = "行政区划"),
            @Excel(name = "行政区划编号",targetAttr = "regionCode",cellType = Excel.ColumnType.STRING,prompt = "行政区划编号"),
    })
    private SysRegion region;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 项目建设内容 */
    @Excel(name = "项目建设内容")
    private String projectDesc;

    /** 项目业主 */
    @Excel(name = "项目业主")
    private String projectOwner;

    /** 负责人姓名 */
    @Excel(name = "负责人姓名")
    private String managerName;

    /** 负责人电话 */
    @Excel(name = "负责人电话")
    private String managerPhone;

    /** 负责人单位 */
    @Excel(name = "负责人单位")
    private String managerDept;

    /** 项目类型 */
    private String projectType;
    @Excel(name = "项目类型")
    private String projectTypeName;

    /** 项目资金来源 */
    @Excel(name = "项目资金来源")
    private String projectFundsSource;

    /** 项目地址 */
    @Excel(name = "项目地址")
    private String projectAddress;

    /** 概算 */
    @Excel(name = "概算")
    private BigDecimal projectEstimate;

    /** 招标控制价 */
    @Excel(name = "招标控制价")
    private BigDecimal bidLimit;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date projectBuildTime;

    /** 立项资料 */
    private String projectFileIds;
    /** 立项资料 */
    private List<AjaxResult> projectFiles;

    /** 公告时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "公告时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date announcementTime;

    /** 开标时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开标时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date bidOpenTime;

    /** 预算 */
    @Excel(name = "预算")
    private BigDecimal budget;

    /** 会议资料 */
    private String meetingFileIds;
    private List<AjaxResult> meetingFiles;
    /** 中标公司 */
    @Excel(name = "中标公司")
    private String bidCompany;

    /** 中标公司社会代码 */
    @Excel(name = "中标公司社会代码")
    private String bidCompanyCode;

    /** 中标单位负责人姓名 */
    @Excel(name = "中标单位负责人姓名")
    private String bidderName;

    /** 中标单位负责人电话 */
    @Excel(name = "中标单位负责人电话")
    private String bidderPhone;

    /** 中标价格 */
    @Excel(name = "中标价格")
    private BigDecimal bidPrice;

    /** 中标时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "中标时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date bidTime;

    /** 预计完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date completeTime;

    /** 实际完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date completeTimeReal;

    /** 合同编号集合 */
    private String bidContractFileIds;
    private List<AjaxResult> bidContractFiles;
    /** 中标参考资料集合 */
    private String bidReferenceFileIds;
    private List<AjaxResult> bidReferenceFiles;
    /** 实施开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实施开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 开工资料 */
    private String constructionFileIds;
    private List<AjaxResult> constructionFiles;
    /** 实施结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实施结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 实施实际结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实施实际结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDateReal;

    /** 审计单位 */
    @Excel(name = "审计单位")
    private String auditCompany;

    /** 审计公司社会代码 */
    @Excel(name = "审计公司社会代码")
    private String auditCompanyCode;

    /** 审计单位负责人姓名 */
    @Excel(name = "审计单位负责人姓名")
    private String auditor;

    /** 审计单位负责人电话 */
    @Excel(name = "审计单位负责人电话")
    private String auditorPhone;

    /** 审计开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审计开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auditStartDate;

    /** 审计结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审计结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auditEndDate;

    /** 审计资料 */
    private String auditFileIds;
    private List<AjaxResult> auditFiles;
    /** 验收结果 */
    @Excel(name = "验收结果")
    private String acceptanceResult;

    /** 验收内容 */
    @Excel(name = "验收内容")
    private String acceptanceContent;

    /** 验收资料 */
    private String acceptanceFileIds;
    private List<AjaxResult> acceptanceFiles;
    /** 当前阶段 */
    private Integer currentStage;
    @Excel(name = "当前阶段")
    private String currentStageName;
    /** 项目状态 */
    @Excel(name = "项目状态")
    private Integer status;


    public String getCurrentStageName() {
        return currentStageName;
    }

    public void setCurrentStageName(String currentStageName) {
        this.currentStageName = currentStageName;
    }

    public void setProjectId(Long projectId) {
        this.projectId = projectId;
    }

    public Long getProjectId(){
        return projectId;
    }
    public void setRegionId(Long regionId) {
        this.regionId = regionId;
    }

    public Long getRegionId(){
        return regionId;
    }
    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getProjectName(){
        return projectName;
    }
    public void setProjectDesc(String projectDesc) {
        this.projectDesc = projectDesc;
    }

    public String getProjectDesc(){
        return projectDesc;
    }
    public void setProjectOwner(String projectOwner) {
        this.projectOwner = projectOwner;
    }

    public String getProjectOwner(){
        return projectOwner;
    }
    public void setManagerName(String managerName) {
        this.managerName = managerName;
    }

    public String getManagerName(){
        return managerName;
    }
    public void setManagerPhone(String managerPhone) {
        this.managerPhone = managerPhone;
    }

    public String getManagerPhone(){
        return managerPhone;
    }
    public void setManagerDept(String managerDept) {
        this.managerDept = managerDept;
    }

    public String getManagerDept(){
        return managerDept;
    }
    public void setProjectType(String projectType) {
        this.projectType = projectType;
    }

    public String getProjectType(){
        return projectType;
    }
    public void setProjectFundsSource(String projectFundsSource) {
        this.projectFundsSource = projectFundsSource;
    }

    public String getProjectFundsSource(){
        return projectFundsSource;
    }
    public void setProjectAddress(String projectAddress) {
        this.projectAddress = projectAddress;
    }

    public String getProjectAddress(){
        return projectAddress;
    }
    public void setProjectEstimate(BigDecimal projectEstimate) {
        this.projectEstimate = projectEstimate;
    }

    public BigDecimal getProjectEstimate(){
        return projectEstimate;
    }
    public void setBidLimit(BigDecimal bidLimit) {
        this.bidLimit = bidLimit;
    }

    public BigDecimal getBidLimit(){
        return bidLimit;
    }
    public void setProjectBuildTime(Date projectBuildTime) {
        this.projectBuildTime = projectBuildTime;
    }

    public Date getProjectBuildTime(){
        return projectBuildTime;
    }
    public void setProjectFileIds(String projectFileIds) {
        this.projectFileIds = projectFileIds;
    }

    public String getProjectFileIds(){
        return projectFileIds;
    }
    public void setAnnouncementTime(Date announcementTime) {
        this.announcementTime = announcementTime;
    }

    public Date getAnnouncementTime(){
        return announcementTime;
    }
    public void setBidOpenTime(Date bidOpenTime) {
        this.bidOpenTime = bidOpenTime;
    }

    public Date getBidOpenTime(){
        return bidOpenTime;
    }
    public void setBudget(BigDecimal budget) {
        this.budget = budget;
    }

    public BigDecimal getBudget(){
        return budget;
    }
    public void setMeetingFileIds(String meetingFileIds) {
        this.meetingFileIds = meetingFileIds;
    }

    public String getMeetingFileIds(){
        return meetingFileIds;
    }
    public void setBidCompany(String bidCompany) {
        this.bidCompany = bidCompany;
    }

    public String getBidCompany(){
        return bidCompany;
    }
    public void setBidCompanyCode(String bidCompanyCode) {
        this.bidCompanyCode = bidCompanyCode;
    }

    public String getBidCompanyCode(){
        return bidCompanyCode;
    }
    public void setBidderName(String bidderName) {
        this.bidderName = bidderName;
    }

    public String getBidderName(){
        return bidderName;
    }
    public void setBidderPhone(String bidderPhone) {
        this.bidderPhone = bidderPhone;
    }

    public String getBidderPhone(){
        return bidderPhone;
    }
    public void setBidPrice(BigDecimal bidPrice) {
        this.bidPrice = bidPrice;
    }

    public BigDecimal getBidPrice(){
        return bidPrice;
    }
    public void setBidTime(Date bidTime) {
        this.bidTime = bidTime;
    }

    public Date getBidTime(){
        return bidTime;
    }
    public void setCompleteTime(Date completeTime) {
        this.completeTime = completeTime;
    }

    public Date getCompleteTime(){
        return completeTime;
    }
    public void setCompleteTimeReal(Date completeTimeReal) {
        this.completeTimeReal = completeTimeReal;
    }

    public Date getCompleteTimeReal(){
        return completeTimeReal;
    }
    public void setBidContractFileIds(String bidContractFileIds) {
        this.bidContractFileIds = bidContractFileIds;
    }

    public String getBidContractFileIds(){
        return bidContractFileIds;
    }
    public void setBidReferenceFileIds(String bidReferenceFileIds) {
        this.bidReferenceFileIds = bidReferenceFileIds;
    }

    public String getBidReferenceFileIds(){
        return bidReferenceFileIds;
    }
    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getStartDate(){
        return startDate;
    }
    public void setConstructionFileIds(String constructionFileIds) {
        this.constructionFileIds = constructionFileIds;
    }

    public String getConstructionFileIds(){
        return constructionFileIds;
    }
    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Date getEndDate(){
        return endDate;
    }
    public void setEndDateReal(Date endDateReal) {
        this.endDateReal = endDateReal;
    }

    public Date getEndDateReal(){
        return endDateReal;
    }
    public void setAuditCompany(String auditCompany) {
        this.auditCompany = auditCompany;
    }

    public String getAuditCompany(){
        return auditCompany;
    }
    public void setAuditCompanyCode(String auditCompanyCode) {
        this.auditCompanyCode = auditCompanyCode;
    }

    public String getAuditCompanyCode(){
        return auditCompanyCode;
    }
    public void setAuditor(String auditor) {
        this.auditor = auditor;
    }

    public String getAuditor(){
        return auditor;
    }
    public void setAuditorPhone(String auditorPhone) {
        this.auditorPhone = auditorPhone;
    }

    public String getAuditorPhone(){
        return auditorPhone;
    }
    public void setAuditStartDate(Date auditStartDate) {
        this.auditStartDate = auditStartDate;
    }

    public Date getAuditStartDate(){
        return auditStartDate;
    }
    public void setAuditEndDate(Date auditEndDate) {
        this.auditEndDate = auditEndDate;
    }

    public Date getAuditEndDate(){
        return auditEndDate;
    }
    public void setAuditFileIds(String auditFileIds) {
        this.auditFileIds = auditFileIds;
    }

    public String getAuditFileIds(){
        return auditFileIds;
    }
    public void setAcceptanceResult(String acceptanceResult) {
        this.acceptanceResult = acceptanceResult;
    }

    public String getAcceptanceResult(){
        return acceptanceResult;
    }
    public void setAcceptanceContent(String acceptanceContent) {
        this.acceptanceContent = acceptanceContent;
    }

    public String getAcceptanceContent(){
        return acceptanceContent;
    }
    public void setAcceptanceFileIds(String acceptanceFileIds) {
        this.acceptanceFileIds = acceptanceFileIds;
    }

    public String getAcceptanceFileIds(){
        return acceptanceFileIds;
    }
    public void setCurrentStage(Integer currentStage) {
        this.currentStage = currentStage;
    }

    public Integer getCurrentStage(){
        return currentStage;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getStatus(){
        return status;
    }

    public List<AjaxResult> getProjectFiles() {
        return projectFiles;
    }

    public void setProjectFiles(List<AjaxResult> projectFiles) {
        this.projectFiles = projectFiles;
    }

    public List<AjaxResult> getMeetingFiles() {
        return meetingFiles;
    }

    public void setMeetingFiles(List<AjaxResult> meetingFiles) {
        this.meetingFiles = meetingFiles;
    }

    public List<AjaxResult> getBidContractFiles() {
        return bidContractFiles;
    }

    public void setBidContractFiles(List<AjaxResult> bidContractFiles) {
        this.bidContractFiles = bidContractFiles;
    }

    public List<AjaxResult> getConstructionFiles() {
        return constructionFiles;
    }

    public void setConstructionFiles(List<AjaxResult> constructionFiles) {
        this.constructionFiles = constructionFiles;
    }

    public List<AjaxResult> getAuditFiles() {
        return auditFiles;
    }

    public void setAuditFiles(List<AjaxResult> auditFiles) {
        this.auditFiles = auditFiles;
    }

    public List<AjaxResult> getAcceptanceFiles() {
        return acceptanceFiles;
    }

    public void setAcceptanceFiles(List<AjaxResult> acceptanceFiles) {
        this.acceptanceFiles = acceptanceFiles;
    }

    public List<AjaxResult> getBidReferenceFiles() {
        return bidReferenceFiles;
    }

    public void setBidReferenceFiles(List<AjaxResult> bidReferenceFiles) {
        this.bidReferenceFiles = bidReferenceFiles;
    }

    public SysRegion getRegion() {
        return region;
    }

    public void setRegion(SysRegion region) {
        this.region = region;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("projectId", getProjectId())
            .append("regionId", getRegionId())
            .append("projectName", getProjectName())
            .append("projectDesc", getProjectDesc())
            .append("projectOwner", getProjectOwner())
            .append("managerName", getManagerName())
            .append("managerPhone", getManagerPhone())
            .append("managerDept", getManagerDept())
            .append("projectType", getProjectType())
            .append("projectFundsSource", getProjectFundsSource())
            .append("projectAddress", getProjectAddress())
            .append("projectEstimate", getProjectEstimate())
            .append("bidLimit", getBidLimit())
            .append("projectBuildTime", getProjectBuildTime())
            .append("projectFileIds", getProjectFileIds())
            .append("announcementTime", getAnnouncementTime())
            .append("bidOpenTime", getBidOpenTime())
            .append("budget", getBudget())
            .append("meetingFileIds", getMeetingFileIds())
            .append("bidCompany", getBidCompany())
            .append("bidCompanyCode", getBidCompanyCode())
            .append("bidderName", getBidderName())
            .append("bidderPhone", getBidderPhone())
            .append("bidPrice", getBidPrice())
            .append("bidTime", getBidTime())
            .append("completeTime", getCompleteTime())
            .append("completeTimeReal", getCompleteTimeReal())
            .append("bidContractFileIds", getBidContractFileIds())
            .append("bidReferenceFileIds", getBidReferenceFileIds())
            .append("startDate", getStartDate())
            .append("constructionFileIds", getConstructionFileIds())
            .append("endDate", getEndDate())
            .append("endDateReal", getEndDateReal())
            .append("auditCompany", getAuditCompany())
            .append("auditCompanyCode", getAuditCompanyCode())
            .append("auditor", getAuditor())
            .append("auditorPhone", getAuditorPhone())
            .append("auditStartDate", getAuditStartDate())
            .append("auditEndDate", getAuditEndDate())
            .append("auditFileIds", getAuditFileIds())
            .append("acceptanceResult", getAcceptanceResult())
            .append("acceptanceContent", getAcceptanceContent())
            .append("acceptanceFileIds", getAcceptanceFileIds())
            .append("currentStage", getCurrentStage())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }

    public String getProjectTypeName() {
        return projectTypeName;
    }

    public void setProjectTypeName(String projectTypeName) {
        this.projectTypeName = projectTypeName;
    }
}
